package source

import (
	"errors"
)

// 无操作配置源观察器
type noopWatcher struct {
	exit chan struct{}
}

// 无操作配置源观察器：下一个
// 无操作配置源观察器：下一个返回一个错误
func (w *noopWatcher) Next() (*ChangeSet, error) {
	<-w.exit

	return nil, errors.New("noopWatcher stopped")
}

// 无操作配置源观察器：停止
// 无操作配置源观察器：停止关闭退出通道
func (w *noopWatcher) Stop() error {
	close(w.exit)
	return nil
}

// 无操作配置源观察器：新的
// 无操作配置源观察器：新的返回一个无操作配置源观察器
func NewNoopWatcher() (Watcher, error) {
	return &noopWatcher{exit: make(chan struct{})}, nil
}
